// pages/my/order/index.js
import regeneratorRuntime from '../../../utils/regeneratorRuntime.js'

const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    active:0,
    now_status: -1,
    last_page:0,
    current_page: 0,
    orderList: [{
      tabName: '全部',
      list: []
    },{
      tabName: '待收货/使用',
      list: []
    },{
      tabName: '已收货/使用',
      list: []
    },{
      tabName: '售后',
      list: []
    }],
    contHeight: null,
    loading: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad({index}) {
    if(index) {
      this._tabClick(index)
      this.setData({
        active: index
      })
    }
    this.setData({
      contHeight: `height:${wx.getSystemInfoSync().windowHeight - 44}px`
    })
  },

  async getList() {
    let orderList = this.data.orderList // 获取 data 中定义的数组格式
    let status = this.data.now_status // 获取 tabIndex 类型
    let index = status == -1 ? 0 : (status == 4 ? 3 : status) // 设置请求 订单类型索引index 遇到 0 转为 -1

    let page = this.data.current_page + 1 // 请求 当前页面数 初始化值 0 所以 + 1 
    try {
      const res = await app.order.getGoodsOrders(page, status) // 发起后台 订单请求

      if(page == 1) {
        orderList[index].list = []
      }
     
      if (res.data.length > 0) {
        res.data.forEach((item) => {
          orderList[index].list.push(item);
        });
      }

      this.setData({ // 赋值给data
        orderList,
        last_page: res.last_page,
        current_page: res.current_page,
        loading: false
      })
    } catch (err) {
      app.toast(err)
    }
    
  },

  onChange({detail: {index}}) {
    this._tabClick(index)
  },

  _tabClick(state) {
    let status = state == 0 ? -1 : (state == 3 ? 4 : state ) 
    this.setData({
      now_status: status,
      current_page: 0
    });
    this.getList()
  },

  onDetails({
    detail
  }) {
    let url = `./detail?detail=${JSON.stringify(detail)}`
    wx.navigateTo({
      url
    })
  },

  onMore() {
    // 检查是否有下一页
    if (this.data.current_page < this.data.last_page) {
      this.getList()
    }
  },
 
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      current_page: 0
    })
    this.getList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})